package com.hmall.item.domain.query;

import com.hmall.common.domain.PageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 商品分页查询条件
 * 继承自PageQuery，封装商品搜索的分页参数和筛选条件
 * 用于构建商品列表查询的请求参数，支持多维度筛选和分页
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(description = "商品分页查询条件，用于构建商品列表的搜索参数")
public class ItemPageQuery extends PageQuery {

    /**
     * 搜索关键字
     * 用于全文搜索商品名称、描述等字段
     * 示例：输入"手机"可搜索包含"手机"的商品
     */
    @ApiModelProperty(value = "搜索关键字，用于匹配商品名称、描述等", example = "手机")
    private String key;

    /**
     * 商品分类
     * 用于筛选特定类目的商品
     * 示例："电子产品"、"服装"
     */
    @ApiModelProperty(value = "商品分类，筛选指定类目的商品", example = "电子产品")
    private String category;

    /**
     * 商品品牌
     * 用于筛选特定品牌的商品
     * 示例："华为"、"苹果"
     */
    @ApiModelProperty(value = "商品品牌，筛选指定品牌的商品", example = "华为")
    private String brand;

    /**
     * 价格最小值
     * 用于价格区间筛选的下限
     * 单位：分（如100表示1元）
     */
    @ApiModelProperty(value = "价格最小值", example = "10000")
    private Integer minPrice;

    /**
     * 价格最大值
     * 用于价格区间筛选的上限
     * 单位：分（如10000表示100元）
     */
    @ApiModelProperty(value = "价格最大值", example = "100000")
    private Integer maxPrice;
}